// [[ OnflowGenerator File UUID: 319ab670e7a24106a41b78738621a260  ]]
package com.itdct.onflow.system.monitor.qo

import com.itdct.onflow.core.qo.BaseQo
import com.itdct.onflow.core.type.Add
import com.itdct.onflow.core.type.Update
import io.swagger.v3.oas.annotations.media.Schema
import jakarta.validation.constraints.NotBlank
import jakarta.validation.constraints.NotNull
import org.hibernate.validator.constraints.Length
import java.math.BigDecimal
import java.util.*

/**
 * @author DCTANT
 * @date 2025-10-13 10:48:15
 * @version 1.0
 * @description 服务器信息编辑入参
 */
@Schema(name = "服务器信息编辑入参", description = "服务器信息编辑入参")
class SysMachineInfoEditQo : BaseQo() {
    // [[ OnflowGenerator Range (- fields -) Start ]]
    @Schema(title = "服务器id", example = "")
    @NotBlank(message = "请输入服务器id", groups = [Add::class, Update::class])
    @Length(max = 50, message = "服务器id不能超过50个字符", groups = [Add::class, Update::class])
    var machineId: String? = null

    @Schema(title = "服务器ip地址", example = "")
    @NotBlank(message = "请输入服务器ip地址", groups = [Add::class, Update::class])
    @Length(max = 64, message = "服务器ip地址不能超过64个字符", groups = [Add::class, Update::class])
    var ipAddress: String? = null

    @Schema(title = "服务器mac地址", example = "")
    @NotBlank(message = "请输入服务器mac地址", groups = [Add::class, Update::class])
    @Length(max = 64, message = "服务器mac地址不能超过64个字符", groups = [Add::class, Update::class])
    var macAddress: String? = null

    @Schema(title = "上次上报时间", example = "")
    var lastReportDate: Date? = null

    @Schema(title = "在线状态", example = "")
    @NotNull(message = "请输入在线状态", groups = [Add::class, Update::class])
    var onlineState: Int? = null

    @Schema(title = "操作系统名称", example = "")
    @Length(max = 100, message = "操作系统名称不能超过100个字符", groups = [Add::class, Update::class])
    var osName: String? = null

    @Schema(title = "服务器名称", example = "")
    @Length(max = 100, message = "服务器名称不能超过100个字符", groups = [Add::class, Update::class])
    var serverName: String? = null

    @Schema(title = "序列号", example = "")
    @Length(max = 100, message = "序列号不能超过100个字符", groups = [Add::class, Update::class])
    var sn: String? = null

    @Schema(title = "CPU名称", example = "")
    @Length(max = 100, message = "CPU名称不能超过100个字符", groups = [Add::class, Update::class])
    var cpuName: String? = null

    @Schema(title = "CPU频率", example = "")
    @Length(max = 100, message = "CPU频率不能超过100个字符", groups = [Add::class, Update::class])
    var cpuFrequency: String? = null

    @Schema(title = "CPU物理核心数", example = "")
    @NotNull(message = "请输入CPU物理核心数", groups = [Add::class, Update::class])
    var physicalProcessorCount: Int? = null

    @Schema(title = "CPU逻辑核心数", example = "")
    @NotNull(message = "请输入CPU逻辑核心数", groups = [Add::class, Update::class])
    var logicalProcessorCount: Int? = null

    @Schema(title = "物理内存", example = "")
    @NotNull(message = "请输入物理内存", groups = [Add::class, Update::class])
    var physicalMemory: Int? = null

    @Schema(title = "虚拟内存", example = "")
    @NotNull(message = "请输入虚拟内存", groups = [Add::class, Update::class])
    var virtualMemory: Int? = null

    @Schema(title = "总存储", example = "")
    @NotNull(message = "请输入总存储", groups = [Add::class, Update::class])
    var totalStorage: BigDecimal? = null

// [[ OnflowGenerator Range (- fields -) End ]]
}